From: kfraser@localhost.localdomain Date: Wed, 25 Oct 2006 14:29:36 +0000 (+0100) Subject: [IA64][HVM][QEMU] Add buffer IO mechanism for IA64/VTi domain. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15584^2 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/success//%22http:/www.example.com/cgi/success/?a=commitdiff_plain;h=74c7bdae6eab4107c5453a2b70c3d2e586d8561b;p=xen.git [IA64][HVM][QEMU] Add buffer IO mechanism for IA64/VTi domain. Signed-off-by:Zhang xiantao --- diff --git a/tools/ioemu/vl.c b/tools/ioemu/vl.c index 185547743a..e331abd1ae 100644 --- a/tools/ioemu/vl.c +++ b/tools/ioemu/vl.c @@ -6448,7 +6448,6 @@ int main(int argc, char **argv) fprintf(logfile, "shared page at pfn:%lx, mfn: %"PRIx64"\n", shared_page_nr, (uint64_t)(page_array[shared_page_nr])); - /* not yet add for IA64 */ buffered_io_page = xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, PROT_READ|PROT_WRITE, page_array[shared_page_nr - 2]); @@ -6465,7 +6464,7 @@ int main(int argc, char **argv) #elif defined(__ia64__) if (xc_ia64_get_pfn_list(xc_handle, domid, page_array, - IO_PAGE_START >> PAGE_SHIFT, 1) != 1) { + IO_PAGE_START >> PAGE_SHIFT, 3) != 3) { fprintf(logfile, "xc_ia64_get_pfn_list returned error %d\n", errno); exit(-1); } @@ -6477,6 +6476,12 @@ int main(int argc, char **argv) fprintf(logfile, "shared page at pfn:%lx, mfn: %016lx\n", IO_PAGE_START >> PAGE_SHIFT, page_array[0]); + buffered_io_page =xc_map_foreign_range(xc_handle, domid, PAGE_SIZE, + PROT_READ|PROT_WRITE, + page_array[2]); + fprintf(logfile, "Buffered IO page at pfn:%lx, mfn: %016lx\n", + BUFFER_IO_PAGE_START >> PAGE_SHIFT, page_array[2]); + if (xc_ia64_get_pfn_list(xc_handle, domid, page_array, 0, nr_pages) != nr_pages) { fprintf(logfile, "xc_ia64_get_pfn_list returned error %d\n", errno); @@ -6496,6 +6501,7 @@ int main(int argc, char **argv) fprintf(logfile, "xc_map_foreign_batch returned error %d\n", errno); exit(-1); } + free(page_array); #endif #else /* !CONFIG_DM */